package me.zhengjie.modules.website.service;

import me.zhengjie.modules.website.domain.VisitReservationTable;
import org.springframework.data.domain.Pageable;
import me.zhengjie.modules.website.domain.PageResult;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * @author system
 * @since 2024-10-23 22:20:17
 */
public interface  VisitReservationTableService {

    PageResult<VisitReservationTable> findPage(
            VisitReservationTable visitReservationTable,
            LocalDateTime startDate,
            LocalDateTime endDate,
            Pageable pageable);

    PageResult<VisitReservationTable> findPage(VisitReservationTable params, Pageable pageable);

    List<VisitReservationTable> findList(VisitReservationTable params);

    VisitReservationTable findById(Long id);

    List<VisitReservationTable> insert(VisitReservationTable visitReservationTable);

    VisitReservationTable update(VisitReservationTable visitReservationTable);

    void delete(Long id);

    VisitReservationTable handleReservation(Long visitId, Integer num);

    List<VisitReservationTable> getReservationsByDateAndType(Date visitDate, String reservationType);
}